//
//
//
//
//
//
// NixTimer.h
//

#ifndef NIX_TIMER_H_
#define NIX_TIMER_H_

#include "common.h"
#include <pthread.h>

// As a base class. children class should implement this TimerSvc virtual
// function
//
class NixTimer
{
	public:
		NixTimer();
		NixTimer(U32 useconds);
		virtual ~NixTimer();

		void Start();
		void Stop();
		virtual void TimerSvc(void) = 0;
		U32 Interval(U32 useconds);
		U32 Interval(void);
	private:
		// timer thread entry
		static void* ThreadEntry(void*);
	private:
		U32 _interval;
		bool _isRun;
		pthread_t _threadID;
};

#endif // NIX_TIMER_H_
